package cn.sumpu.app.guoguojie.dao;

import java.util.List;
import java.util.Map;

import cn.sumpu.app.guoguojie.domain.Member;
import cn.sumpu.app.guoguojie.domain.MemberAudit;
import cn.sumpu.app.guoguojie.domain.Ext.FollowFans;
import cn.sumpu.app.guoguojie.exception.AppBusinessException;

public interface MemberDao {
    public void insert(Member member) throws AppBusinessException;

    public List<Member> getMemberList(Map<String, Object> map) throws AppBusinessException;

    public int getMemberListCount(Map<String, Object> map) throws AppBusinessException;

    public int getFamilyBabyCount(String family) throws AppBusinessException;

    public void updateMember(Member member) throws AppBusinessException;

    public void updateHostName(Map<String, Object> map) throws AppBusinessException;
    
    /**
     * 只用来做数据订正.
     * 
     * @param map
     * @throws AppBusinessException
     */
    public void updateFollowFans(Map<String, Object> map) throws AppBusinessException;

    public Member getMemberById(String identifier) throws AppBusinessException;

    public List<Member> getMemberListByDoorplate(String doorplate) throws AppBusinessException;

    /**
     * 根据标识号删除宝宝信息
     * @param identifier	宝宝Id
     * @throws AppBusinessException
     */
    public void deleteBabyInfo(String identifier) throws AppBusinessException;

    /**
     * 根据门牌号取得爸爸妈妈的集合
     * @param doorplate			门牌号
     * @throws AppBusinessException
     */
    public List<Member> getParentListByDoorplate(String doorplate) throws AppBusinessException;

    /**
     * 根据门牌号户主的密码
     * @param doorplate			门牌号
     * @throws AppBusinessException
     */
    public String getHostPwdByDoorplate(String doorplate) throws AppBusinessException;

    /**
     * 根据门牌号取得户主的信息
     * @param doorplate			门牌号
     * @throws AppBusinessException
     */
    public Member getHostInfoByDoorplate(String doorplate) throws AppBusinessException;

    public List<Member> getMemberListByIds(Map<String, Object> map) throws AppBusinessException;

    public int getMemberListByIdsCount(Map<String, Object> map) throws AppBusinessException;

    public List<MemberAudit> getMemberAuditList(Map<String, Object> map) throws AppBusinessException;

    public int deleteMemberAuditByIds(Map<String, Object> map) throws AppBusinessException;

    public int getFamilyListByMemberNameCount(Map<String, Object> map) throws AppBusinessException;

    public List<FollowFans> getFamilyListByMemberName(Map<String, Object> map) throws AppBusinessException;

    //根据昵称nickname取得会员信息
    Member getMemberByNickname(String nickname) throws AppBusinessException;

    //取得全部的会员昵称和门牌号
    List<Member> getAllMember(Map<String, Object> map) throws AppBusinessException;

    public List<Member> getUserInfoList(Map<String, Object> map) throws AppBusinessException;//根据条件筛选用户

    public int getUserInfoListCount(Map<String, Object> map) throws AppBusinessException;

    public List<Member> getApproveMemberList(Map<String, Object> map) throws AppBusinessException;//查询提交认证申请用户

    public int getApproveMemberListCount(Map<String, Object> map) throws AppBusinessException;

    //
    public int getSuperUserListCount(Map<String, Object> map) throws AppBusinessException;

    public List<Member> getSuperUserList(Map<String, Object> map) throws AppBusinessException;

    public List<Member> getMember(Map<String, Object> map) throws AppBusinessException;
    
    public int getMemberCount(Map<String, Object> map) throws AppBusinessException;
    
    public List<Member> getLoginMember(Map<String, Object> map) throws AppBusinessException;

    public void insertFans(Map<String, Object> map) throws AppBusinessException;

    public void deleteFans(Map<String, Object> map) throws AppBusinessException;

    public List<FollowFans> getFans(Map<String, Object> map) throws AppBusinessException;

    public int getFansCount(Map<String, Object> map) throws AppBusinessException;

}
